package com.newlink.building.userinfo.mvp.contract

import com.newlink.building.common_base.base.IModel
import com.newlink.building.common_base.base.IPresenter
import com.newlink.building.common_base.base.IView
import com.newlink.building.common_base.model.bean.Base_ChangePasswordBean
import com.newlink.building.common_base.model.bean.HttpResult
import io.reactivex.Observable

/**
 * @author wangyang
 * @date 2022/10/27
 * @description 我的——账户信息——修改密码页面的Contract
 */
interface Module_UserInfo_AccountInformationChangePasswordContract {

    interface Model : IModel {
        fun changePassword(
            token: String,
            changePasswordBean: Base_ChangePasswordBean
        ): Observable<HttpResult<String?>>
    }

    interface View : IView {
        fun changePasswordSuccess()
        fun changePasswordFail(reason: String?)
    }

    interface Presenter : IPresenter<View> {
        fun changePassword(token: String, changePasswordBean: Base_ChangePasswordBean)
    }
}